Cognitive scrollbar

ABSTRACT

A method includes determining dimensions of a web browser presenting a webpage, the webpage including an inner container and an outer container. The method modifies dimensions of the outer container of the webpage based upon an associated maximum height value, an associated minimum height value, and an amount of data within the outer container. Responsive to calculating a vertical height of the inner container, assigning a maximum height value and a minimum height value to the inner container. The method modifies dimensions of the inner container to a minimum height for the web browser to present the data of the webpage, based on the assigned maximum height value and minimum height value of the inner container. The method augments the web browser to include a scrollbar based on the modified dimensions of the outer container and the modified dimensions of the inner container.

STATEMENT ON PRIOR DISCLOSURES BY AN INVENTOR

The following disclosure(s) are submitted under 35 U.S.C. 102(b)(1)(A)as prior disclosures by, or on behalf of, a sole inventor of the presentapplication or a joint inventor of the present application:

(i) BLUM, et al., “IBM DS8880 Architecture and Implementation” (Release8.2.1) Redbooks, International Technical Support Organization, January2017, Copyright IBM Corp. 2016, 2017, 472 pages.

BACKGROUND

The present invention relates generally to the field of computing, andmore particularly to interacting with data objects in the client area ofa graphical user interface.

A scroll bar permits a user to move a data object in the client area ofa user interface of an application. Because the window can display adata object, such as a document or a bitmap, that is larger than thewindow's client area, a scroll bar permits the user to bring into viewthe portions of the object that extend beyond the borders of the client.Scroll bars are often included in any window for which the content ofthe client area extends beyond the window's borders. A scroll bar'sorientation determines the direction in which scrolling occurs when theuser operates the scroll bar. A horizontal scroll bar enables the userto move the content of the window to the left or right, while a verticalscroll bar enables the user to scroll the content up or down.

Scroll bars are presented in containers. A container is a part of a webserver that interacts with a servlet. A container is responsible formanaging the lifecycle of servlets, mapping a URL to a particularservlet, and ensuring that the URL requester has the correct addressrights. A container handles requests to servlets and other type filesincluding server-side code. The container creates servlet instances,loads and unloads servlets, creates and manages request and responseobjects, and performs other servlet management tasks.

SUMMARY

Embodiments of the present invention include a method, computer programproduct and computer system for calculating space on a web browser for ascrollbar. A computer-implemented method includes determining, by one ormore processors, dimensions of a web browser presenting a webpage, thewebpage including an inner container and an outer container; modifying,by one or more processors, dimensions of the outer container of thewebpage based upon an associated maximum height value, an associatedminimum height value, and an amount of data within the outer container;responsive to calculating a vertical height of the inner container,assigning, by one or more processors, a maximum height value and aminimum height value to the inner container; modifying, by one or moreprocessors, dimensions of the inner container to a minimum height forthe web browser to present the data of the webpage, based on theassigned maximum height value and minimum height value of the innercontainer; and augmenting, by one or more processors, the web browser toinclude a scrollbar based on the modified dimensions of the outercontainer and the modified dimensions of the inner container.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a functional block diagram illustrating a distributed dataprocessing environment, in accordance with an embodiment of the presentinvention.

FIG. 2 is a flowchart depicting operational steps of a cognitivescrollbar program for adapting a webpage presentation to the inlinecontents of the webpage and automatically resolving the screen based onuser preferences, in accordance with an embodiment of the presentinvention.

FIG. 3a illustrates an example of cognitive scrollbar programautomatically adapting the webpage to the inline contents andautomatically resolving the screen, in accordance with an embodiment ofthe present invention.

FIG. 3b illustrates an example of cognitive scrollbar program presentinga user with a scrollbar in the inner container, in accordance with anembodiment of the present invention.

FIG. 3c illustrates an example of cognitive scrollbar program presentinga user with a scrollbar in the outer container, in accordance with anembodiment of the present invention.

FIG. 4 is a block diagram of components of a computer system, such asthe server computer of FIG. 1, in an embodiment, in accordance with thepresent invention.

DETAILED DESCRIPTION

Example embodiments, in accordance with the present invention, will nowbe described in detail with reference to the Figures. FIG. 1 is afunctional block diagram, general designated 100, illustrating adistributed data processing environment. Distributed data processingenvironment 100 includes computing device 110, interconnected withnetwork 120.

Computing device 110 may be a desktop computer, a laptop computer, atablet computer, a specialized computer server, a smartphone, a wearabledevice (e.g., smart watch, personal fitness device, personal safetydevice), or any programmable computer system known in the art with aninteractive display or any other computer system known in the art. Incertain embodiments, computing device 110 represents a computer systemutilizing clustered computers and components that act as a single poolof seamless resources when accessed through network 120, as is common indata centers and with cloud computing applications. In general,computing device 110 is representative of any programmable electronicdevice or combination of programmable electronic devices capable ofexecuting machine-readable program instructions and communicating withother computer devices via a network. In one embodiment, computingdevice 110 includes graphical user interface (GUI) 130, cognitivescrollbar program 200, web browser 150, and any other electronic devicesnot illustrated in FIG. 1, via network 120. In another embodiment,cognitive scrollbar program 200 can be remotely hosted to anothercomputing device accessible by network 120. The various programs oncomputing device 110 include a web browser, an electronic mail client,security software (e.g., a firewall program, a geo-locating program, anencryption program, etc.), an instant messaging (IM) application (app),and a communication (e.g., phone) application.

In general, network 120 can be any combination of connections andprotocols that will support communications among computing device 110.Network 120 can include, for example, a local area network (LAN), a widearea network (WAN), such as the Internet, a cellular network, or anycombination of the preceding, and can further include wired, wireless,and/or fiber optic connections.

In one embodiment, graphical user interface 130 operates on computingdevice 110. In another embodiment, graphical user interface 130 operateson another computer in a server based setting, for example on a servercomputer. In yet another embodiment, graphical user interface 130operates on computing device 110 simultaneously with a server computerinterconnected through network 120. Graphical user interface 130 may beany user interface used to access information from computing device 110,such as information gathered or produced by cognitive scrollbar program200. Additionally, graphical user interface 130 may be any userinterface used to supply information to computing device 110, such asinformation supplied by a user to be used by cognitive scrollbar program200. In some embodiments, graphical user interface 130 may present ageneric web browser used to retrieve, present, and negotiate resourcesfrom the Internet. In other embodiments, graphical user interface 130may be a software or application that enables a user at computing device110 access to network 120.

In yet another embodiment, a user of computing device 110 can interactwith graphical user interface 130 through a touch screen that performsas both an input device to a graphical user interface (GUI) and as anoutput device (i.e., an electronic display) presenting a plurality oficons associated with software applications or images depicting theexecuting software application. Optionally, a software application(e.g., a web browser) can generate graphical user interface 130operating within the GUI of computing device 110. Graphical userinterface 130 accepts input from a plurality of input/output (I/O)devices including, but not limited to, a tactile sensor interface (e.g.,a touch screen or a touchpad) referred to as a multi-touch display. AnI/O device interfacing with graphical user interface 130 may beconnected to computing device 110, which may operate utilizing wired(e.g., USB port) or wireless network communications (e.g., infrared,NFC, etc.). Computing device 110 may include components, as depicted anddescribed in further detail with respect to FIG. 4, in accordance withembodiments of the present invention.

In one embodiment, cognitive scrollbar program 200 operates on computingdevice 110. In another embodiment, cognitive scrollbar program 200operates on another computer in a server based setting, for example on aserver computer. In yet another embodiment, cognitive scrollbar program200 operates on computing device 110 simultaneously with a servercomputer interconnected through network 120. Cognitive scrollbar program200 provides the capability to allow the user to interface with abrowser page without a plurality of inner and outer scrollbars in thesame direction. Cognitive scrollbar program 200 reads the web browser asa function of content web browser 150 is presenting in four areas.Cognitive scrollbar program 200 assesses information from, but notlimited to, the four regions: Banner, Dock, Status, and Main workingarea. In one embodiment, cognitive scrollbar program 200 can resize theapplication or web browser window. In another embodiment, cognitivescrollbar program 200 can also enhance the viewing area of the presentedwebpage to calculate whether the scrollbar can dynamically switchbetween the inner and outer container in the same webpage.

In an example embodiment, cognitive scrollbar program 200 operates as acode snippet within one or more applications on computing device 110.Code snippets define the scope of interactivity between the snippets andthe application, (e.g. cognitive scrollbar program 200 hosted by a webbrowser application). For example, cognitive scrollbar program 200 is afunction within web browser 150, and the processes of cognitivescrollbar program 200 occur automatically (i.e., without userintervention) during operation of web browser 150. The dynamic codesnippet elements provide scripting support. The variables enable dialogbetween cognitive scrollbar program 200 and graphical user interface130.

In one embodiment, cognitive scrollbar program 200 has the ability toanalyze the inline contents, remaining spaces, and the enhancement ofthe viewing area of the web browser on a webpage accessed by a user todetermine how to adapt the contents of the webpage such that onescrollbar is used to view the page. In this embodiment, cognitivescrollbar program 200 can analyze and calculate the contents on awebpage to determine that the spaces on the page are large enough tocontain all of the inline contents so that no scrollbar is presentanywhere on the page and the height of the inner container adapts to theinline contents.

In another embodiment, cognitive scrollbar program 200 has the abilityto stretch the inner container of the webpage based on the inlinecontents of the page. In this embodiment, the scrollbar only displays inthe outer container because cognitive scrollbar program 200 determinesthat the viewing area of the browser or the browser window is too small.

Web browser 150 may be a generic web browser used to retrieve, present,and traverse information resources from the Internet. In someembodiments, web browser 150 may be a web browser designed for a mobiledevice. In other embodiments, web browser 150 may be a web browserdesigned for a traditional computing device, such as a desktop computer,PC, or laptop. In general, web browser 150 may be any application orsoftware that enables a user of computing device 110 to access a webpageover network 120. In the depicted environment, web browser 150 resideson computing device 110. In other embodiments, web browser 150, orsimilar web browsers, may reside on other computing devices capable ofaccessing a webpage over network 120.

FIG. 2 is a flowchart depicting operational steps of cognitive scrollbarprogram 200, a program for adapting a webpage presentation to the inlinecontents of the webpage and automatically resolving the screen based onuser preferences, in accordance with an embodiment of the presentinvention.

Cognitive scrollbar program 200 determines web browser dimensions (210).In one embodiment, cognitive scrollbar program 200 reads informationassociated with web browser 150 as a function of information that webbrowser 150 is presenting in the display area of web browser 150. Forexample, the information associated with web browser 150 includes datafrom hypertext markup language, hypertext transfer protocol, andsoftware applications. Cognitive scrollbar program 200 determines theinformation that web browser 150 is presenting by dividing the page intothe four regions. In an example, a main working area, the innercontainer, is flexible. A flexible inner container is automaticallysized because the main working area contains a dynamic sub containerelement. Cognitive scrollbar program 200 automatically assesses theavailable space on the rest of the page based upon an assessment of themain working area. In other embodiments, the main working area maycontain tree tables, a grid, or another sub container that has differentpage elements. In this example, the main working area is flexible, andthe banner, dock, and status areas of web browser 150 collectivelycomprise the outer container, which are fixed in size. In anotherembodiment, cognitive scrollbar program 200 determines web browser 150dimensions of a page based upon a fixed height of the form tablecomponents and data grid. In yet another embodiment, the outer containerdimension is assigned a value based upon a height dimension of webbrowser 150. In this example, cognitive scrollbar program 200 determinesthat web browser 150 height dimensions, and the fixed height of the formtable components on the page, are large enough to contain all of theinline contents so that no scrollbar will show anywhere on the page andthe height of the inner container will adapt to the inline contents.

Cognitive scrollbar program 200 modifies the outer container (212). Inthis embodiment, cognitive scrollbar program 200 automatically orientsthe dimensions of the outer container based on the assessment from theprevious step. Cognitive scrollbar program 200 performs this step as afunction of the assessment of the value assigned to the remainingavailable space on web browser 150 excluding the outer container.Cognitive scrollbar program 200 derives the value from the information,or data, on web browser 150 based upon the initial assessment of thehypertext transfer protocol (HTTP). The HTTP defines how information isformatted, transmitted, and what actions web servers and browsers shouldtake in response to various commands. Cognitive scrollbar program 200determines the orientation and modification of the outer container basedon the data from the HTTP. The outer container assessment is to beunderstood as a fixed value once cognitive scrollbar program 200 assignsthe outer container parameters. The parameters of the outer containerare assigned based on the overflow attributes of web browser 150 dataused by cognitive scrollbar program 200 to assess and modify the outercontainer. In an example, cognitive scrollbar program 200 modifies theouter container such that all the data available from web browser 150can be presented on web browser 150. In another embodiment, cognitivescrollbar program 200 modifies the outer container to a minimum value asa function of the data presented on web browser 150. In this example,cognitive program 200 orients the outer container of web browser 150 asa function of data on web browser 150 that presents a jpeg file. Thejpeg file does not stretch the outer container beyond a minimal heightsetting.

Cognitive scrollbar program 200 calculates the flexible and remainingspaces of the inner container (214). In one embodiment, cognitivescrollbar program 200 assesses how the dimensions of the inner containercan be modified without any outflow of data beyond the spaces in theinner container. In an example, cognitive scrollbar program 200calculates the flexible height of the inner container as a function ofthe height value of web browser 150 and the fixed height components. Inanother embodiment, cognitive scrollbar program 200 calculates themaximum height of the inner container and assigns a value based upon thecalculation. Based upon the calculated value, cognitive scrollbarprogram 200 determines that web browser 150 has a margin space at thebottom of the page. In this example, cognitive scrollbar program 200utilizes the previously assessed information in the outer container todetermine that the inline contents of the inner container are minimal.Cognitive scrollbar program 200 creates a margin at the bottom of thebrowser such that web browser 150 includes a space between the outercontainer and the inner container.

Cognitive scrollbar program 200 modifies the inner container (216).Cognitive scrollbar program 200 compares the maximum value of the innercontainer with the pre-set value of the browser page. The valuedifference, between the maximum value of the inner container and thepre-set value assigned to web browser 150, is the minimum height valuethat cognitive scrollbar program 200 accepts to show the contents of thewebpage to a user. In an embodiment, cognitive scrollbar program 200assigns the inner container value as the minimum value possible. In thisexample, cognitive scrollbar program 200 determines that the value ofthe inner container is less than the pre-set value of web browser 150.Cognitive scrollbar program 200 orients the inner container such thatinformation is contained in the inner spaces. In another embodiment,cognitive scrollbar program 200 assigns the inner container a value thatis greater than the pre-set value assigned to the web browser 150. Inthis example, cognitive scrollbar program 200 determines that the innercontainer must equal the size of the outer container. Cognitivescrollbar program 200 stretches the inner container allowing the innercontainer occupy as much of the page on web browser 150 that the outercontainer permits. In this embodiment, web browser 150 does not depict adelineation between the inner and outer container.

Cognitive scrollbar program 200 augments web browser 150 to directpresentation of scrollbar (218). In one embodiment, cognitive scrollbarprogram 200 directs the sizing of the flexible and remaining spaces onweb browser 150 to generate space for the scrollbar. Cognitive scrollbarprogram 200 presents the user with a scrollbar and places the scrollbarin the outer container. In this example, the inner container containsall of the data from web browser 150 without expanding to accommodatethe data. Cognitive scrollbar program 200 presents the user with thescrollbar in the outer container to accommodate the size of the datapresented in the other areas, excluding the outer container, of webbrowser 150.

FIG. 3a illustrates an example of cognitive scrollbar programautomatically adapting the webpage to the inline contents andautomatically resolving the screen, in accordance with an embodiment ofthe present invention.

In this example, cognitive scrollbar program 200 operates on web browser305 with the viewing area of the browser enhanced to 110%, withscrollbar 302 presented in outer container 307. As in step 210 of FIG.2, cognitive scrollbar program 200 determines that the web browser 305viewing area is enhanced to 110%. As in step 214 of FIG. 2, cognitivescrollbar program 200 calculates the spaces on the web page. Cognitivescrollbar program 200 assesses how the dimensions of inner container 309can be modified without any outflow of data beyond the spaces of innercontainer 309. Cognitive scrollbar program 200 analyzes the form tableand determines that a group of different field sets are being used todisplay a key server, a key label, the recovery keys, and thecertificates separately. In this example, as depicted in step 216 ofFIG. 2, cognitive scrollbar program 200 modifies the style of the innercontainer. Cognitive scrollbar program 200 compares the maximum value ofinner container 309 with the pre-set value of web browser 305. Cognitivescrollbar program 200 determines that one field set can be expanded onweb browser 305, while presenting information in the inner container 309at an enhancement of 110%, at a time. Cognitive scrollbar program 200,as in step 218 of FIG. 2, augments the web browser to directpresentation of the scrollbar to the user in the outer container 307, onthe right side of the page.

In another embodiment, cognitive scrollbar program 200 augments webbrowser 305 to direct the scrollbar to inner container 309. Cognitivescrollbar program 200 presents the user with a scrollbar and places thescrollbar in inner container 309. In this example, the viewing area ofthe browser is minimal and this causes the inline contents to overflowand stretch the inner container. Cognitive scrollbar program 200 willpresent the user with the scrollbar in the inner container 309 so thatthe user can utilize the remaining spaces to show as much of web browser305 content as possible. The user is able to compare the contents of theinner container 309 with the contents of other areas of web browser 305.

FIG. 3b illustrates an example of cognitive scrollbar program presentinga user with a scrollbar in the inner container, in accordance with anembodiment of the present invention.

In this example, cognitive scrollbar program 200 operates on web browser304 with the viewing area of the browser enhanced to 100%, withscrollbar 302 present in the inner container 306. As depicted in step210 of FIG. 2, cognitive scrollbar program 200 analyzes the web browserand determines the web browser is enhanced to 100%. Cognitive scrollbarprogram 200 analyzes the form table, as in step 212 of FIG. 2, modifyingthe style of the outer container, and determines, as in step 214,calculates the previously assessed spaces on the web page, that a groupof different field sets are being used to display a key server, a keylabel, the recovery keys, and the certificates separately. In thisexample, cognitive scrollbar program 200 determines that moreinformation can be presented, multiple field sets can be expanded, andthe information can be scrolled through in the inner container 306. Asin step 216 of FIG. 2, cognitive scrollbar program 200 modifies thestyle of the inner container. In this example, cognitive scrollbarprogram 200, as in step 218 of FIG. 2, augments the web browser todirect scrollbar presentation. Cognitive scrollbar program 200 placesthe scroll bar in the inner container 306 to scroll up and down to viewthe inline contents at an enhancement of 100%.

FIG. 3c illustrates an example of cognitive scrollbar program presentinga user with a scrollbar in the outer container, in accordance with anembodiment of the present invention.

In this example, cognitive scrollbar program 200 operates without ascrollbar present on web browser 303 at an enhancement of 90%, and aninner container 305. As in step 210 of FIG. 2, cognitive scrollbarprogram 200 determines that the web browser is enhanced to 90%. As instep 214 of FIG. 2, cognitive scrollbar program 200 calculates thespaces on the web page. Cognitive scrollbar program 200 analyzes theform table and determines that a group of different field sets are beingused to display a key server, a key label, the recovery keys, and thecertificates separately. In this example, cognitive scrollbar program200 analyzes an encryption panel on web browser 303 enhanced to 90% anddetermines that the multiple contents of web browser 303 can be viewedin inner container 305 without a scrollbar on web browser 303 at anenhancement of 90%.

In yet another embodiment, as in step 218 of FIG. 2, cognitive scrollbarprogram 200 augments web browser 150 directing the page to presentwithout requiring a scrollbar. Cognitive scrollbar program 200 directsthe sizing of the flexible and remaining spaces on web browser 303 torender a scrollbar unnecessary. Cognitive scrollbar program 200 does notpresent the user with a scrollbar. In this example, cognitive scrollbarprogram 200 determined that the user can navigate web browser 150without a scrollbar. Cognitive scrollbar program 200 determined that theinline contents on web browser 150 are able to contain all of the datapresented without a scrollbar.

FIG. 4 depicts computer system 400, where computer system 400 representsa computer system in distributed data processing environment 100.Computing device 110 represents an example of a computer system indistributed data processing environment 100, where computing device 110includes cognitive scrollbar program 140. Computer system 400 includesprocessors 404, cache 416, memory 406, persistent storage 408,communications unit 410, input/output (I/O) interface(s) 412 andcommunications fabric 402. Communications fabric 404 providescommunications between cache 416, memory 406, persistent storage 408,communications unit 410, and input/output (I/O) interface(s) 412.Communications fabric 402 can be implemented with any architecturedesigned for passing data and/or control information between processors(such as microprocessors, communications and network processors, etc.),system memory, peripheral devices, and any other hardware componentswithin a system. For example, communications fabric 402 can beimplemented with one or more buses or a crossbar switch.

Memory 406 and persistent storage 408 are computer readable storagemedia. In this embodiment, memory 406 includes random access memory(RAM). In general, memory 406 can include any suitable volatile ornon-volatile computer readable storage media. Cache 416 is a fast memorythat enhances the performance of processors 404 by holding recentlyaccessed data, and data near recently accessed data, from memory 406.

Program instructions and data used to practice embodiments of thepresent invention may be stored in persistent storage 408 and in memory406 for execution by one or more of the respective processors 404 viacache 416. In an embodiment, persistent storage 408 includes a magnetichard disk drive. Alternatively, or in addition to a magnetic hard diskdrive, persistent storage 408 can include a solid state hard drive, asemiconductor storage device, read-only memory (ROM), erasableprogrammable read-only memory (EPROM), flash memory, or any othercomputer readable storage media that is capable of storing programinstructions or digital information.

The media used by persistent storage 408 may also be removable. Forexample, a removable hard drive may be used for persistent storage 408.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer readable storage medium that is also part of persistent storage408.

Communications unit 410, in these examples, provides for communicationswith other data processing systems or devices. In these examples,communications unit 410 includes one or more network interface cards.Communications unit 410 may provide communications through the use ofeither or both physical and wireless communications links. Programinstructions and data used to practice embodiments of the presentinvention may be downloaded to persistent storage 408 throughcommunications unit 410.

I/O interface(s) 412 allows for input and output of data with otherdevices that may be connected to each computer system. For example, I/Ointerface 412 may provide a connection to external devices 418 such as akeyboard, keypad, a touch screen, and/or some other suitable inputdevice. External devices 418 can also include portable computer readablestorage media such as, for example, thumb drives, portable optical ormagnetic disks, and memory cards. Software and data used to practiceembodiments of the present invention can be stored on such portablecomputer readable storage media and can be loaded onto persistentstorage 408 via I/O interface(s) 412. I/O interface(s) 412 also connectto display 420.

Display 420 provides a mechanism to display data to a user and may be,for example, a computer monitor.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

What is claimed is:
 1. A method for calculating a space on a web browserfor a scrollbar, the method comprising: determining, by one or moreprocessors, dimensions of a web browser presenting a webpage, thewebpage including an inner container and an outer container; modifying,by one or more processors, dimensions of the outer container of thewebpage based upon an associated maximum height value, an associatedminimum height value, and an amount of data within the outer container,wherein modifying dimensions of the outer container further comprises:responsive to determining that the maximum height value for the outercontainer meets a value threshold for displaying the content of thewebpage that is within the outer container, augmenting, by one or moreprocessors, the outer container to display all the content of thewebpage that is within the outer container without including a scrollbarin the outer container; and determining, by one or more processors, anoverflow attribute associated with the outer container, the overflowattribute indicating whether webpage content within the outer containerexceeds an available display area of the outer container; andidentifying, by one or more processors, a main working area within theinner container, wherein the main working area includes a datastructure, and wherein the main working area is flexible, allowingmodifications to the dimensions of main working area; determining, byone or more processors, available space in the main working area of theinner container responsive to calculating a vertical height of the innercontainer, assigning, by one or more processors, a maximum height valueand a minimum height value to the inner container; modifying, by one ormore processors, dimensions of the inner container to a minimum heightfor the web browser to present the data of the webpage, based on theassigned maximum height value and minimum height value of the innercontainer, wherein modifying dimensions of the inner container furthercomprises: identifying, by one or more processors, content of thewebpage in the inner container; and augmenting, by one or moreprocessors, the content of the webpage in the inner container to includea space to present the scrollbar; and responsive to determining that themaximum height value for the inner container meets a value threshold fordisplaying the content of the webpage that is within the innercontainer, augmenting, by one or more processors, the inner container todisplay all the content of the webpage that is within the innercontainer without including a scrollbar in the inner container; andaugmenting, by one or more processors, the web browser to include ascrollbar based on the modified dimensions of the outer container andthe modified dimensions of the inner container, wherein the scrollbar isdisplayed in one of: (i) the outer container and (ii) the innercontainer.